package com.smart.community.user.entity;

import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.smart.community.commons.base.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.time.LocalDateTime;

/**
 * 登录日志实体类
 * 
 * @author Wu.Liang
 * @since 2024-12-21
 */
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("sc_login_log")
public class LoginLog extends BaseEntity {

    /**
	 * @author Wu.Liang
	 * @date 2025年7月29日
	 */
	private static final long serialVersionUID = 1662158416929293879L;

	/**
     * 用户ID
     */
    @TableField("user_id")
    private Long userId;

    /**
     * 用户名
     */
    @TableField("username")
    private String username;

    /**
     * IP地址
     */
    @TableField("login_ip")
    private String loginIp;

    /**
     * 登录地址
     */
    @TableField("login_address")
    private String loginAddress;

    /**
     * 浏览器
     */
    @TableField("browser")
    private String browser;

    /**
     * 操作系统
     */
    @TableField("os")
    private String os;

    /**
     * 设备类型
     */
    @TableField("device_type")
    private Integer deviceType;

    /**
     * 登录状态（0成功 1失败）
     */
    @TableField("login_status")
    private Integer loginStatus;

    /**
     * 登录消息
     */
    @TableField("login_message")
    private String loginMessage;

    /**
     * 登录时间
     */
    @TableField("login_time")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime loginTime;

    /**
     * 状态
     */
    @TableField("status")
    private Integer status;

    /**
     * 登录类型
     */
    @TableField("login_type")
    private Integer loginType;

    /**
     * 登出时间
     */
    @TableField("logout_time")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime logoutTime;

    /**
     * 在线时长
     */
    @TableField("online_duration")
    private Long onlineDuration;
} 